package com.kygeng.springframework.context;

import com.kygeng.springframework.beans.BeansException;

import java.io.IOException;

/**
 * @Title: ConfigurableApplicationContext
 * @Author: kygeng
 * @Package: com.kygeng.springframework.context
 * @Date: 2024/7/22 13:08
 * @Description:
 */
public interface ConfigurableApplicationContext extends ApplicationContext{

    /**
     * 刷新容器
     *
     * @throws BeansException
     */
    void refresh() throws BeansException, IOException;

    /**
     * 关闭容器
     * @throws BeansException
     */
    void close() throws BeansException;

    /**
     * 注册虚拟机钩子的方法
     */
    void registerShutdownHook();

}
